# -*- coding: utf-8 -*-
# @Time : 2024/5/16 11:14
# @Author : Zxg
# @Email : 1473858993@qq.com
# @File : yaml_util.py
# @Project : Luckin_Finance_Center_U

import os
import yaml
from common.dir import cok_dir


class CookieUtil:
    """
    处理全局公共参数处理
    """

    def read_extract_yml(self):
        """
        读取全局文件cok文件，拿到全局cookie，做为后续接口cookie入参凭证
        :return:
        """
        filepath = os.path.join(cok_dir, 'extract.yml')
        with open(filepath, mode='r', encoding='utf-8') as f:
            value = yaml.load(stream=f, Loader=yaml.FullLoader)
            return value

    def write_extract_yml(self, data):
        """
        结合fixture使用，作为全局cookie提取使用，以供后续接口读取调用
        :param data:
        :return:
        """
        filepath = os.path.join(cok_dir, 'extract.yml')
        # 对应文件写入内容   a: 进行追加
        #                 w: 写入但会覆盖
        with open(filepath, mode='a', encoding='utf-8') as f:
            yaml.dump(data=data, stream=f, allow_unicode=True)

    def clean_extract_yml(self):
        """
        清除作用域内填写的所有内容，配合fixture中的 yield使用
        :return:
        """
        filepath = os.path.join(cok_dir, 'extract.yml')
        with open(filepath, mode='w', encoding='utf-8') as f:
            f.truncate()

    ########## 清除extract_yml文件，在第一种文件清空不被允许的情况下使用此方法，逻辑为重制为空

    # def clean_extract_yml(self):
    #     """
    #     清除作用域内填写的所有内容，配合fixture中的 yield使用
    #     :return:
    #     """
    # 对应文件写入内容   a: 进行追加
    #                 w: 写入但会覆盖
    #     filepath = os.path.join(cok_dir, 'extract.yml')
    #     with open(filepath, mode='w', encoding='utf-8') as f:
    #         f.write('')

cok_util = CookieUtil()